Position transducers can be applied to control the ON/OFF state of external circuits. Such a system monitors position and sets or resets one or more outputs at predefined positions or "setpoints". The mechanisms controlled by this system usually have a constant delay from activation to the desired mechanical reaction. An offset can be added to the transducer position in order to activate the output circuit before its actual setpoint has been reached to compensate for this mechanical delay. As the velocity of the mechanical system increases, the time added by such a positional offset decreases. Therefore, a larger positional offset is needed to compensate for the same mechanical delay at higher speeds. In many mechanical systems the delay for mechanism activation is different from the delay for the deactivation of the mechanism. This requires two different positional offsets for delay compensation. When the circuit is OFF an ON offset is used, and when the circuit is in ON an OFF offset is needed.
Usually such a system is implemented in software by a microcontroller. The microcontroller reads the transducer position at fixed time intervals and calculates velocity. The microcontroller computes the offsets based on the calculated velocity and adds these offsets to the position. The microcontroller compares this offset position to a table of ON/OFF positions. The table entry specifies the desired output state. The microcontroller can control many circuits from one position reading.
This programmable microcontroller technique cannot operate at high speeds or with many simultaneously controlled circuits. As an example, consider a system controlling 16 circuits. Reading a 14 bit resolver at 1 rpm requires about 3.7 milliseconds per position. This allows about 230 microseconds per circuit for the 16 circuits being set for each position reading to do the operations listed above. Reading the same 14 bit resolver at 730 rpm requires 5 microseconds per position and leaves only about 310 nanoseconds per circuit for each of the 16 circuits. Reaching this speed with a general purpose computer is very difficult. Each loop requires an estimated 150 computer instructions. If the computer instructions require an average of 10 clock cycles, then a clock cycle rate of more than 4.8 billion per second is required. No readily available a general purpose computer is capable of achieving this rate. Computer hardware especially designed to be this fast is very expensive.
Therefore there is a need for application specific hardware to interface with the microcontroller to jointly implement the required operations at these speeds.